package com.lcf.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lcf.framework.vo.PageVO;
import com.lcf.system.dto.SysOrderDTO;
import com.lcf.system.entity.SysOrder;
import com.lcf.system.query.SysOrderPageQuery;
import com.lcf.system.vo.SysOrderPageVO;
import com.lcf.system.vo.SysOrderVO;

import java.util.List;

/**
 * 订单(SysOrder)表服务接口
 *
 * @author lcf
 * @since 2025-05-02 11:55:03
 */
public interface SysOrderService extends IService<SysOrder> {
    /**
     * 下单
     */
    boolean saveOrder(SysOrderDTO dto);
    /**
     * 购物车下单
     */
    boolean saveCartOrder(List<Long> cartIdList);
    /**
     * 团购下单
     */
    boolean saveGroupOrder(long ruleId);
    /**
     * 我的订单
     */
    PageVO<SysOrderPageVO> page(SysOrderPageQuery query);
    /**
     * 农户查看订单列表
     */
    PageVO<SysOrderPageVO> pageByFarmer(SysOrderPageQuery query);
    /**
     * 团长查看订单列表
     */
    PageVO<SysOrderPageVO> pageByLeader(SysOrderPageQuery query);
    /**
     * 订单详情
     */
    SysOrderVO getDetail(long id);
    /**
     * 根据订单编号查询
     */
    SysOrderVO getByOrderNo(String orderNo);
    /**
     * 备货中
     */
    boolean stocking(long id);
    /**
     * 待取货
     */
    boolean pickUp(long id);
    /**
     * 已取货
     */
    boolean pickedUp(long id);
    /**
     * 取消订单
     */
    boolean cancel(long id);
    /**
     * 退货
     */
    boolean back(long id);
    /**
     * 配送中
     */
    boolean delivery(long id);
    /**
     * 已送达
     */
    boolean delivered(long id);
    /**
     * 付款
     */
    boolean pay(long id);
}

